package com.zhang.authoritycenter.service;

import com.zhang.authoritycenter.common.model.dao.authority.AuthorityApiDO;
import com.zhang.authoritycenter.common.model.dto.authority.AddApiReqDTO;
import com.zhang.authoritycenter.common.model.dto.authority.ApiGetListReqDTO;
import com.zhang.authoritycenter.common.model.dto.authority.ApiQueryPageReqDTO;
import com.zhang.authoritycenter.common.model.dto.authority.UpdateApiReqDTO;
import com.zhang.mysql.model.PageResponseVO;

import java.util.List;

/**
 * <p>
 * 系统api接口表 服务类
 * </p>
 *
 * @author KingHood
 * @since 2023-12-18
 */
public interface IAuthorityApiService {

    /**
     * api信息列表
     *
     * @param in api信息
     * @return api信息
     * @author zfj
     * @date 2023/12/18
     */
    PageResponseVO<AuthorityApiDO> queryPage(ApiQueryPageReqDTO in);

    /**
     * 新建api信息
     *
     * @param in api信息
     * @return api信息
     * @author zfj
     * @date 2023/12/18
     */
    AuthorityApiDO addApi(AddApiReqDTO in);

    /**
     * 获取api信息
     *
     * @param id api信息id
     * @return api信息
     * @author zfj
     * @date 2023/12/18
     */
    AuthorityApiDO getApi(Long id);

    /**
     * api信息修改
     *
     * @param in api信息
     * @return api信息
     * @author zfj
     * @date 2023/12/18
     */
    AuthorityApiDO updateApi(UpdateApiReqDTO in);

    /**
     * 批量删除api
     *
     * @param idList api的id信息
     * @return 是否删除成功
     * @author zfj
     * @date 2023/12/18
     */
    Boolean deleteApiBatch(List<Long> idList);

    /**
     * <p>下拉列</p>
     * 获取api
     *
     * @param in 入参
     * @return api列表
     * @author zfj
     * @date 2023/12/19
     */
    List<AuthorityApiDO> getList(ApiGetListReqDTO in);
}
